ccR.Add_Rotation(
	1, -- Player Specialization
	"CC_Arms_Solo", -- Function name
	"Developed early WoD, Not recommended.", -- Description
	"CC_Arms_Talents", -- Talents button frame
	"CC_Arms_Abilities", -- Abilities button frame
	"CC_Arms_Features", -- Features button frame
	"CC_Arms_Setup" -- Setup button frame
)
function CC_Arms_Solo()
	-- Battle Shout
	if not ccR.Player.Has.Buff(6673) -- Battle Shout
	and not ccR.Player.Has.Buff(57330) -- Horn of Winter
	and not ccR.Player.Has.Buff(19506) -- Trueshot Aura
	then
		ccR.Cast.Spell(6673)
	end

	if ccR.Target.Is.Attackable()
	and ccR.Player.Is.Facing("target") 
	then
		-- If we have a Target, StartAttack
		ccR.Start_Attack()

		-- Spell Interuption
		if ccR.Spell.Is.Ready(PUMMEL) then
			for x = 1, # ccR_Enemies_Within_8 do
				local vUnit = ccR_Enemies_Within_8[x]
				if ccR.Unit.Exists(vUnit)
				and ccR.Unit.Is.CastingOrChanneling(vUnit) 
				and ccR.Unit.Is.Interuptable(vUnit) 
				and ccR.Player.Is.Facing(vUnit)
				and ccR.Spell.CanAttack(PUMMEL, vUnit)
				then 
					if ccR.Unit.Has.LeftOnCast(vUnit, 1) then ccR.Cast.Attack(PUMMEL, vUnit) end 
					if ccR.Unit.Is.Channeling(vUnit) then ccR.Cast.Attack(PUMMEL, vUnit) end 
				end
			end
		end		
		-- Low Health / Victory Rush
		if ccR.Spell.Is.Ready(VICTORY_RUSH) and ccR.Player.Health() <= 90 and ccR.Spell.Can.Attack(VICTORY_RUSH) then ccR.Cast.Attack(VICTORY_RUSH) 
		elseif ccR.Spell.Is.Ready(IMPENDING_VICTORY) and ccR.Player.Health() <= 90 and ccR.Spell.Can.Attack(IMPENDING_VICTORY) then ccR.Cast.Attack(IMPENDING_VICTORY) 
		elseif ccR.Spell.Is.Ready(DIE_BY_THE_SWORD) and ccR.Player.Health() <= 35 then ccR.Cast.Spell(DIE_BY_THE_SWORD) 
		elseif ccR.Spell.Is.Ready(ENRAGED_REGENERATION) and ccR.Player.Health() <= 80 then ccR.Cast.Spell(ENRAGED_REGENERATION) 
		elseif ccR.Player.Health() <= 25 and not ccR.Player.Has.Buff(DEFENSIVE_STANCE) then ccR.Cast.Spell(DEFENSIVE_STANCE) 
		elseif ccR.Player.Health() > 25 and ccR.Player.Has.Buff(DEFENSIVE_STANCE) then ccR.Cast.Spell(BATTLE_STANCE) 
		elseif ccR.Player.Has.Buff(DEFENSIVE_STANCE) and not ccR.Player.Has.Buff(SHIELD_BARRIER) and ccR.Spell.Is.Ready(SHIELD_BARRIER) then ccR.Cast.Spell(SHIELD_BARRIER) 
		-- Opening Rotation
		elseif ccR.Spell.Can.Attack(CHARGE) and ccR.Target.Distance() >= 8 then ccR.Cast.Attack(CHARGE)
		elseif ccR.Player.Has.Talent(BLOODBATH) and ccR.Spell.Is.Ready(BLOODBATH) and ccR.Player.Is.InCombat() then ccR.Cast.Spell(BLOODBATH)
		elseif ccR.Player.Has.Talent(AVATAR) and ccR.Spell.Is.Ready(AVATAR) and ccR.Player.Is.InCombat() then ccR.Cast.Spell(AVATAR)
		elseif ccR.Spell.Can.Attack(MORTAL_STRIKE) then ccR.Cast.Attack(MORTAL_STRIKE)
		elseif ccR.Spell.Is.Ready(RECKLESSNESS) and ccR.Player.Is.InCombat() and ccR.Target.Distance() <= 8 then ccR.Cast.Spell(RECKLESSNESS)
		elseif ccR.Spell.Can.Attack(COLOSSUS_SMASH) then ccR.Cast.Attack(COLOSSUS_SMASH)
		elseif not ccR.Target.Has.MyDebuff(REND) and ccR.Spell.Can.Attack(REND) then ccR.Cast.Attack(REND) 
		end
	end
	if ccR.Target.Count(8) == 1 then
		-- Execute Rotation
		if ccR.Target.Health() <= 20 then
			-- During Colossus Smash	
			if ccR.Target.Has.MyDebuff(COLOSSUS_SMASH) then
				if ccR.Player.Is.Facing("target") then
					-- Execute if we have Sudden Death
					if ccR.Player.Has.Buff(SUDDEN_DEATH) and ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE)
					-- Storm bolt when you have less than 70 rage.
					elseif ccR.Player.Has.Spell(STORM_BOLT) and ccR.Spell.Can.Attack(STORM_BOLT) and ccR.Player.Rage() <= 70 then ccR.Cast.Attack(STORM_BOLT)
					-- Execute
					elseif ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE)
					end
				end
			else
			-- Execute Rotation
				if ccR.Player.Is.Facing("target") then
					-- Execute if we have Sudden Death
					if ccR.Player.Has.Buff(SUDDEN_DEATH) and ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE)
					-- Rend
					elseif not ccR.Target.Has.MyDebuff(REND) and ccR.Spell.Can.Attack(REND) then ccR.Cast.Attack(REND) 
					-- Execute with 60 or more rage
					elseif ccR.Spell.Can.Attack(EXECUTE) and ccR.Player.Rage() >= 60 then ccR.Cast.Attack(EXECUTE)
					-- Colossus Smash
					elseif ccR.Spell.Can.Attack(COLOSSUS_SMASH) then ccR.Cast.Attack(COLOSSUS_SMASH)
					-- Slam if chosen, Otherwise Execute / Whirlwind
					elseif ccR.Player.Has.Talent(SLAM) and ccR.Spell.Can.Attack(SLAM) then ccR.Cast.Attack(SLAM)
					end
				end
				-- No Slam or Sudden Death, Use Whirlwind
				if ccR.Player.Rage() >= 40 and ccR.Spell.Is.Ready(WHIRLWIND) and ccR.Target.Distance() <= 8 then ccR.Cast.Spell(WHIRLWIND) end
			end
		else
		-- Not Execute Rotation
			-- During Colossus Smash	
			if ccR.Target.Has.MyDebuff(COLOSSUS_SMASH) then
				if ccR.Player.Is.Facing("target") then
					-- Execute if we have Sudden Death
					if ccR.Player.Has.Buff(SUDDEN_DEATH) and ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE)
					-- Rend
					elseif not ccR.Target.Has.My.Debuff(REND) and ccR.Spell.Can.Attack(REND) then ccR.Cast.Attack(REND)
					-- Mortal Strike
					elseif ccR.Spell.Can.Attack(MORTAL_STRIKE) then ccR.Cast.Attack(MORTAL_STRIKE) 
					-- Storm bolt when you have more than 70 rage.
					elseif ccR.Player.Has.Spell(STORM_BOLT) and ccR.Spell.Can.Attack(STORM_BOLT) and ccR.Player.Rage() >= 70 then ccR.Cast.Attack(STORM_BOLT) return
					-- Slam if chosen, Otherwise Execute / Whirlwind
					elseif ccR.Player.Has.Talent(SLAM) and ccR.Spell.Can.Attack(SLAM) then ccR.Cast.Attack(SLAM) return
					end
				end
				-- No Slam or Sudden Death, Use Whirlwind
				if ccR.Player.Rage() >= 40 and ccR.Spell.Is.Ready(WHIRLWIND) and ccR.Target.Distance() <= 8 then ccR.Cast.Spell(WHIRLWIND) end
			else
			-- Outside Colossus Smash
				if ccR.Player.Is.Facing("target") then
					-- Execute if we have Sudden Death
					if ccR.Player.Has.Buff(SUDDEN_DEATH) and ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE)
					-- Rend
					elseif not ccR.Target.Has.My.Debuff(REND) and ccR.Spell.Can.Attack(REND) then ccR.Cast.Attack(REND)
					-- Mortal Strike
					elseif ccR.Spell.Can.Attack(MORTAL_STRIKE) then ccR.Cast.Attack(MORTAL_STRIKE)
					-- Colossus Smash
					elseif ccR.Spell.Can.Attack(COLOSSUS_SMASH) then ccR.Cast.Attack(COLOSSUS_SMASH)
					-- Storm Bolt or Dragon Roar
					elseif ccR.Player.Has.Spell(STORM_BOLT) and ccR.Spell.Can.Attack(STORM_BOLT) then ccR.Cast.Attack(STORM_BOLT) return
					elseif ccR.Player.Has.Spell(DRAGON_ROAR) and ccR.Spell.Is.Ready(DRAGON_ROAR) and ccR.Target.Distance() <= 8 then ccR.Cast.Spell(DRAGON_ROAR) return
					-- Slam if chosen, Otherwise Execute / Whirlwind
					elseif ccR.Player.Has.Talent(SLAM) and ccR.Spell.Can.Attack(SLAM) then ccR.Cast.Attack(SLAM)
					end
				end
				-- No Slam or Sudden Death, Use Whirlwind
				if ccR.Player.Rage() >= 40 and ccR.Spell.Is.Ready(WHIRLWIND) and ccR.Target.Distance() <= 8 then ccR.Cast.Spell(WHIRLWIND) end
			end
		end
	return
	end
	-- Bladestorm on 3+ enemies
	if ccR.Player.Count(8) >= 3 and ccR.Player.Has.Talent(BLADESTORM) and ccR.Spell.Is.Ready(BLADESTORM) then ccR.Cast.Spell(BLADESTORM) end
	-- Multiple Target Rotation
	if ccR.Player.Count(8) >= 2 then
		-- Execute if we have Sudden Death
		if ccR.Player.Has.Buff(SUDDEN_DEATH) and ccR.Spell.Can.Attack(EXECUTE) then ccR.Cast.Attack(EXECUTE) end
		-- Sweeping Strikes
		if ccR.Spell.Is.Ready(SWEEPING_STRIKES) then ccR.Cast.Spell(SWEEPING_STRIKES); end
		-- Rend
		if not ccR.Target.Has.My.Debuff(REND) and ccR.Spell.Can.Attack(REND) then ccR.Cast.Attack(REND) end
		-- Dragon Roar
		if ccR.Player.Has.Spell(DRAGON_ROAR) and ccR.Spell.Is.Ready(DRAGON_ROAR) and ccR.Player.Count(8) >= 2 then ccR.Cast.Spell(DRAGON_ROAR); end
		-- Whirlwind
		if ccR.Spell.Is.Ready(WHIRLWIND) then ccR.Cast.Spell(WHIRLWIND); end
		-- Rend upto 4-5
		local vRendCount = 0
		for x = 1, #ccR_Enemies_Within_10 do
			local vUnit = ccR_Enemies_Within_10[x]
			if ccR.Unit.Has.MyDebuff(vUnit, REND) then vRendCount = vRendCount + 1 end
		end
		if vRendCount < 5 then
			for x = 1, #ccR_Enemies_Within_10 do
				local vUnit = ccR_Enemies_Within_10[x]
				if not ccR.Unit.Has.My.Debuff(vUnit, REND)
				and ccR.Spell.Can.Attack(REND, vUnit)
				and ccR.Player.Is.Facing(vUnit)
				then
					ccR.Cast.Attack(REND, vUnit)
				end
			end
		end
	return
	end
end